昨天我們知道會 call PRReviewer,PRReviewer 裡面有幾個主要部分:
初始化 (init 方法):
設置審查過程所需的屬性,包括:
Git 提供者
PR URL
PR 的主要語言
AI 處理器
各種設置和配置
運行方法 (run()):
審查過程的主要入口點
處理 PR 審查的整體流程
run() 方法的主要步驟: a. 增量審查檢查:
檢查是否可以進行增量審查
b. 自動批准邏輯:
如果提供了 'auto_approve' 參數,則運行自動批准邏輯而不是完整審查
c. 準備預測:
調用 _prepare_prediction() 獲取 PR 差異並生成 AI 預測
d. 準備 PR 審查:
調用 _prepare_pr_review() 處理 AI 預測並將其格式化為 markdown 格式的審查
e. 發布審查:
將審查作為評論發布到 PR 上
處理持久性評論(如果啟用)
f. 內聯代碼評論:
如果啟用,使用 _publish_inline_code_comments() 發布內聯代碼評論
輔助方法:
_prepare_prediction(): 準備 PR 差異並獲取 AI 預測
_get_prediction(): 使用配置的 AI 處理器生成 AI 預測
_prepare_pr_review(): 將 AI 預測處理成格式化的 markdown 審查
_publish_inline_code_comments(): 如果啟用,發布內聯代碼評論
set_review_labels(): 根據 AI 預測設置審查標籤
auto_approve_logic(): 處理自動批准 PR 的邏輯
實用方法:
_get_user_answers(): 從 PR 檢索問題和答案字符串
_can_run_incremental_review(): 檢查是否可以運行增量審查